using System;
using Cysharp.Threading.Tasks;
using JetBrains.Annotations;

namespace EventBus
{
    public partial class EventBusImpl
    {
        public void RemoveListen([NotNull] string eventName, [NotNull] Func<UniTask> callback)
        {
            RemoveListen(eventName, (object)callback);
        }
        public void RemoveListen<T1>([NotNull] string eventName, [NotNull] Func<T1, UniTask> callback)
        {
            RemoveListen(eventName, (object)callback);
        }
        public void RemoveListen<T1, T2>([NotNull] string eventName, [NotNull] Func<T1, T2, UniTask> callback)
        {
            RemoveListen(eventName, (object)callback);
        }
        public void RemoveListen<T1, T2, T3>([NotNull] string eventName, [NotNull] Func<T1, T2, T3, UniTask> callback)
        {
            RemoveListen(eventName, (object)callback);
        }
        public void RemoveListen<T1, T2, T3, T4>([NotNull] string eventName, [NotNull] Func<T1, T2, T3, T4, UniTask> callback)
        {
            RemoveListen(eventName, (object)callback);
        }
        public void RemoveListen<T1, T2, T3, T4, T5>([NotNull] string eventName, 
            [NotNull] Func<T1, T2, T3, T4, T5, UniTask> callback)
        {
            RemoveListen(eventName, (object)callback);
        }
        public void RemoveListen<T1, T2, T3, T4, T5, T6>([NotNull] string eventName, 
            [NotNull] Func<T1, T2, T3, T4, T5, T6, UniTask> callback)
        {
            RemoveListen(eventName, (object)callback);
        }
        public void RemoveListen<T1, T2, T3, T4, T5, T6, T7>([NotNull] string eventName, 
            [NotNull] Func<T1, T2, T3, T4, T5, T6, T7, UniTask> callback)
        {
            RemoveListen(eventName, (object)callback);
        }
        public void RemoveListen<T1, T2, T3, T4, T5, T6, T7, T8>([NotNull] string eventName, 
            [NotNull] Func<T1, T2, T3, T4, T5, T6, T7, T8, UniTask> callback)
        {
            RemoveListen(eventName, (object)callback);
        }
    }
}